/*
 * Copyright (c) 2018, Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/**
 * @file
 * @brief GPIO pins macros for the Apollo Lake SoC
 *
 * This header file is used to specify the GPIO pins for
 * the Apollo Lake SoC.
 */

#ifndef __SOC_GPIO_H_
#define __SOC_GPIO_H_

#define APL_GPIO_N			0
#define APL_GPIO_NW			1
#define APL_GPIO_W			2
#define APL_GPIO_SW			3

#define APL_GPIO_ISLAND_POS		16
#define APL_GPIO_PIN_MASK		0xFFFF
#define APL_GPIO_N_PREFIX		(APL_GPIO_N  << APL_GPIO_ISLAND_POS)
#define APL_GPIO_NW_PREFIX		(APL_GPIO_NW << APL_GPIO_ISLAND_POS)
#define APL_GPIO_W_PREFIX		(APL_GPIO_W  << APL_GPIO_ISLAND_POS)
#define APL_GPIO_SW_PREFIX		(APL_GPIO_SW << APL_GPIO_ISLAND_POS)

#define APL_GPIO_0			(00 | APL_GPIO_N_PREFIX)
#define APL_GPIO_1			(01 | APL_GPIO_N_PREFIX)
#define APL_GPIO_2			(02 | APL_GPIO_N_PREFIX)
#define APL_GPIO_3			(03 | APL_GPIO_N_PREFIX)
#define APL_GPIO_4			(04 | APL_GPIO_N_PREFIX)
#define APL_GPIO_5			(05 | APL_GPIO_N_PREFIX)
#define APL_GPIO_6			(06 | APL_GPIO_N_PREFIX)
#define APL_GPIO_7			(07 | APL_GPIO_N_PREFIX)
#define APL_GPIO_8			(08 | APL_GPIO_N_PREFIX)
#define APL_GPIO_9			(09 | APL_GPIO_N_PREFIX)
#define APL_GPIO_10			(10 | APL_GPIO_N_PREFIX)
#define APL_GPIO_11			(11 | APL_GPIO_N_PREFIX)
#define APL_GPIO_12			(12 | APL_GPIO_N_PREFIX)
#define APL_GPIO_13			(13 | APL_GPIO_N_PREFIX)
#define APL_GPIO_14			(14 | APL_GPIO_N_PREFIX)
#define APL_GPIO_15			(15 | APL_GPIO_N_PREFIX)
#define APL_GPIO_16			(16 | APL_GPIO_N_PREFIX)
#define APL_GPIO_17			(17 | APL_GPIO_N_PREFIX)
#define APL_GPIO_18			(18 | APL_GPIO_N_PREFIX)
#define APL_GPIO_19			(19 | APL_GPIO_N_PREFIX)
#define APL_GPIO_20			(20 | APL_GPIO_N_PREFIX)
#define APL_GPIO_21			(21 | APL_GPIO_N_PREFIX)
#define APL_GPIO_22			(22 | APL_GPIO_N_PREFIX)
#define APL_GPIO_23			(23 | APL_GPIO_N_PREFIX)
#define APL_GPIO_24			(24 | APL_GPIO_N_PREFIX)
#define APL_GPIO_25			(25 | APL_GPIO_N_PREFIX)
#define APL_GPIO_26			(26 | APL_GPIO_N_PREFIX)
#define APL_GPIO_27			(27 | APL_GPIO_N_PREFIX)
#define APL_GPIO_28			(28 | APL_GPIO_N_PREFIX)
#define APL_GPIO_29			(29 | APL_GPIO_N_PREFIX)
#define APL_GPIO_30			(30 | APL_GPIO_N_PREFIX)
#define APL_GPIO_31			(31 | APL_GPIO_N_PREFIX)
#define APL_GPIO_32			(32 | APL_GPIO_N_PREFIX)
#define APL_GPIO_33			(33 | APL_GPIO_N_PREFIX)
#define APL_GPIO_34			(34 | APL_GPIO_N_PREFIX)
#define APL_GPIO_35			(35 | APL_GPIO_N_PREFIX)
#define APL_GPIO_36			(36 | APL_GPIO_N_PREFIX)
#define APL_GPIO_37			(37 | APL_GPIO_N_PREFIX)
#define APL_GPIO_38			(38 | APL_GPIO_N_PREFIX)
#define APL_GPIO_39			(39 | APL_GPIO_N_PREFIX)
#define APL_GPIO_40			(40 | APL_GPIO_N_PREFIX)
#define APL_GPIO_41			(41 | APL_GPIO_N_PREFIX)
#define APL_GPIO_42			(42 | APL_GPIO_N_PREFIX)
#define APL_GPIO_43			(43 | APL_GPIO_N_PREFIX)
#define APL_GPIO_44			(44 | APL_GPIO_N_PREFIX)
#define APL_GPIO_45			(45 | APL_GPIO_N_PREFIX)
#define APL_GPIO_46			(46 | APL_GPIO_N_PREFIX)
#define APL_GPIO_47			(47 | APL_GPIO_N_PREFIX)
#define APL_GPIO_48			(48 | APL_GPIO_N_PREFIX)
#define APL_GPIO_49			(49 | APL_GPIO_N_PREFIX)
#define APL_GPIO_62			(50 | APL_GPIO_N_PREFIX)
#define APL_GPIO_63			(51 | APL_GPIO_N_PREFIX)
#define APL_GPIO_64			(52 | APL_GPIO_N_PREFIX)
#define APL_GPIO_65			(53 | APL_GPIO_N_PREFIX)
#define APL_GPIO_66			(54 | APL_GPIO_N_PREFIX)
#define APL_GPIO_67			(55 | APL_GPIO_N_PREFIX)
#define APL_GPIO_68			(56 | APL_GPIO_N_PREFIX)
#define APL_GPIO_69			(57 | APL_GPIO_N_PREFIX)
#define APL_GPIO_70			(58 | APL_GPIO_N_PREFIX)
#define APL_GPIO_71			(59 | APL_GPIO_N_PREFIX)
#define APL_GPIO_72			(60 | APL_GPIO_N_PREFIX)
#define APL_GPIO_73			(61 | APL_GPIO_N_PREFIX)
#define APL_GPIO_TCK			(62 | APL_GPIO_N_PREFIX)
#define APL_GPIO_TRST_B			(63 | APL_GPIO_N_PREFIX)
#define APL_GPIO_TMS			(64 | APL_GPIO_N_PREFIX)
#define APL_GPIO_TDI			(65 | APL_GPIO_N_PREFIX)
#define APL_GPIO_CX_PMODE		(66 | APL_GPIO_N_PREFIX)
#define APL_GPIO_CX_PREQ_B		(67 | APL_GPIO_N_PREFIX)
#define APL_GPIO_JTAGX			(68 | APL_GPIO_N_PREFIX)
#define APL_GPIO_CX_PRDY_B		(69 | APL_GPIO_N_PREFIX)
#define APL_GPIO_TDO			(70 | APL_GPIO_N_PREFIX)
#define APL_GPIO_CNV_BRI_DT		(71 | APL_GPIO_N_PREFIX)
#define APL_GPIO_CNV_BRI_RSP		(72 | APL_GPIO_N_PREFIX)
#define APL_GPIO_CNV_RGI_DT		(73 | APL_GPIO_N_PREFIX)
#define APL_GPIO_CNV_RGI_RSP		(74 | APL_GPIO_N_PREFIX)
#define APL_GPIO_SVID0_ALERT_B		(75 | APL_GPIO_N_PREFIX)
#define APL_GPIO_SVOD0_DATA		(76 | APL_GPIO_N_PREFIX)
#define APL_GPIO_SVOD0_CLK		(77 | APL_GPIO_N_PREFIX)

#define APL_GPIO_187			(00 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_188			(01 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_189			(02 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_190			(03 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_191			(04 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_192			(05 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_193			(06 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_194			(07 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_195			(08 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_196			(09 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_197			(10 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_198			(11 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_199			(12 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_200			(13 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_201			(14 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_202			(15 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_203			(16 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_204			(17 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMC_SPI_FS0		(18 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMC_SPI_FS1		(19 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMC_SPI_FS2		(20 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMC_SPI_RXD		(21 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMC_SPI_TXC		(22 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMC_SPI_CLK		(23 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMIC_PWRGOOD		(24 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMIC_RESET_B		(25 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_213			(26 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_214			(27 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_215			(28 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMIC_THERMTRIP_B	(29 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMIC_STDBY		(30 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PROCHOT_B		(31 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMIC_I2C_SCL		(32 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_PMIC_I2C_SDA		(33 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_74			(34 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_75			(35 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_76			(36 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_77			(37 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_78			(38 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_79			(39 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_80			(40 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_81			(41 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_82			(42 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_83			(43 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_84			(44 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_85			(45 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_86			(46 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_87			(47 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_88			(48 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_89			(49 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_90			(50 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_91			(51 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_92			(52 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_97			(53 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_98			(54 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_99			(55 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_100			(56 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_101			(57 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_102			(58 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_103			(59 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_FST_SPI_CLK_FB		(60 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_104			(61 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_105			(62 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_106			(63 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_109			(64 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_110			(65 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_111			(66 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_112			(67 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_113			(68 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_116			(69 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_117			(70 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_118			(71 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_119			(72 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_120			(73 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_121			(74 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_122			(75 | APL_GPIO_NW_PREFIX)
#define APL_GPIO_123			(76 | APL_GPIO_NW_PREFIX)

#define APL_GPIO_124			(00 | APL_GPIO_W_PREFIX)
#define APL_GPIO_125			(01 | APL_GPIO_W_PREFIX)
#define APL_GPIO_126			(02 | APL_GPIO_W_PREFIX)
#define APL_GPIO_127			(03 | APL_GPIO_W_PREFIX)
#define APL_GPIO_128			(04 | APL_GPIO_W_PREFIX)
#define APL_GPIO_129			(05 | APL_GPIO_W_PREFIX)
#define APL_GPIO_130			(06 | APL_GPIO_W_PREFIX)
#define APL_GPIO_131			(07 | APL_GPIO_W_PREFIX)
#define APL_GPIO_132			(08 | APL_GPIO_W_PREFIX)
#define APL_GPIO_133			(09 | APL_GPIO_W_PREFIX)
#define APL_GPIO_134			(10 | APL_GPIO_W_PREFIX)
#define APL_GPIO_135			(11 | APL_GPIO_W_PREFIX)
#define APL_GPIO_136			(12 | APL_GPIO_W_PREFIX)
#define APL_GPIO_137			(13 | APL_GPIO_W_PREFIX)
#define APL_GPIO_138			(14 | APL_GPIO_W_PREFIX)
#define APL_GPIO_139			(15 | APL_GPIO_W_PREFIX)
#define APL_GPIO_146			(16 | APL_GPIO_W_PREFIX)
#define APL_GPIO_147			(17 | APL_GPIO_W_PREFIX)
#define APL_GPIO_148			(18 | APL_GPIO_W_PREFIX)
#define APL_GPIO_149			(19 | APL_GPIO_W_PREFIX)
#define APL_GPIO_150			(20 | APL_GPIO_W_PREFIX)
#define APL_GPIO_151			(21 | APL_GPIO_W_PREFIX)
#define APL_GPIO_152			(22 | APL_GPIO_W_PREFIX)
#define APL_GPIO_153			(23 | APL_GPIO_W_PREFIX)
#define APL_GPIO_154			(24 | APL_GPIO_W_PREFIX)
#define APL_GPIO_155			(25 | APL_GPIO_W_PREFIX)
#define APL_GPIO_209			(26 | APL_GPIO_W_PREFIX)
#define APL_GPIO_210			(27 | APL_GPIO_W_PREFIX)
#define APL_GPIO_211			(28 | APL_GPIO_W_PREFIX)
#define APL_GPIO_212			(29 | APL_GPIO_W_PREFIX)
#define APL_GPIO_OSC_CLK_OUT_0		(30 | APL_GPIO_W_PREFIX)
#define APL_GPIO_OSC_CLK_OUT_1		(31 | APL_GPIO_W_PREFIX)
#define APL_GPIO_OSC_CLK_OUT_2		(32 | APL_GPIO_W_PREFIX)
#define APL_GPIO_OSC_CLK_OUT_3		(33 | APL_GPIO_W_PREFIX)
#define APL_GPIO_OSC_CLK_OUT_4		(34 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_AC_PRESENT		(35 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_BATLOW_B		(36 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_PLTRST_B		(37 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_PWRBTN_B		(38 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_RESETBUTTON_B	(39 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_SLP_S0_B		(40 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_SLP_S3_B		(41 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_SLP_S4_B		(42 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_SUSCLK		(43 | APL_GPIO_W_PREFIX)
#define APL_GPIO_PMU_WAKE_B		(44 | APL_GPIO_W_PREFIX)
#define APL_GPIO_SUS_STAT_B		(45 | APL_GPIO_W_PREFIX)
#define APL_GPIO_SUSPWRDNACK		(46 | APL_GPIO_W_PREFIX)

#define APL_GPIO_205			(00 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_206			(01 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_207			(02 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_208			(03 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_156			(04 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_157			(05 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_158			(06 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_159			(07 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_160			(08 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_161			(09 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_162			(10 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_163			(11 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_164			(12 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_165			(13 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_166			(14 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_167			(15 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_168			(16 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_169			(17 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_170			(18 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_171			(19 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_172			(20 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_179			(21 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_173			(22 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_174			(23 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_175			(24 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_176			(25 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_177			(26 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_178			(27 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_186			(28 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_182			(29 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_183			(30 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_SMB_ALERTB		(31 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_SMB_CLK		(32 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_SMB_DATA		(33 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_ILB_SERIRQ		(34 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_CLKOUT0		(35 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_CLKOUT1		(36 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_AD0		(37 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_AD1		(38 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_AD2		(39 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_AD3		(40 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_CLKRUNB		(41 | APL_GPIO_SW_PREFIX)
#define APL_GPIO_LPC_FRAMEB		(42 | APL_GPIO_SW_PREFIX)

#endif /* __SOC_GPIO_H_ */
